π Feature Dependency Analysis: Correlation, Granger Causality & Error DistributionsΒΆ
Import useful libraries
import os
import glob
import pandas as pd
import logging
logging.getLogger().setLevel(logging.CRITICAL)
logging.getLogger("matplotlib").setLevel(logging.WARNING)
import warnings
warnings.filterwarnings('ignore')
from utilities import DataVisualizer, GrangerCausalityAnalyzer
Define basic folder paths
# Define folder names
DATA_FOLDER_NAME = r".\data"
ORIGINAL_DATASETS_IMOLA_FOLDER_NAME = os.path.join(DATA_FOLDER_NAME, "datasets-imola")
DISCRETIZED_ORIGINAL_DATASETS_IMOLA_FOLDER_NAME = os.path.join(DATA_FOLDER_NAME, "discretized-datasets-imola")
Load the datasets
# Define dataset paths and load all datasets in advance
dataset_paths = glob.glob(os.path.join(ORIGINAL_DATASETS_IMOLA_FOLDER_NAME, "*.csv"))
datasets = {}
print(f"π Found {len(dataset_paths)} datasets in '{ORIGINAL_DATASETS_IMOLA_FOLDER_NAME}'\n")
# Load all datasets before iterating through sections
for dataset_path in dataset_paths:
dataset_name = os.path.basename(dataset_path).replace(".csv", "")
datasets[dataset_name] = pd.read_csv(dataset_path)
print(f" πΈ Loaded dataset '{dataset_name}' with shape: {datasets[dataset_name].shape}")
print("\n β
All datasets loaded successfully!\n")
π Found 3 datasets in '.\data\datasets-imola' πΈ Loaded dataset '20241128-imola' with shape: (248448, 14) πΈ Loaded dataset '20250113-imola' with shape: (497553, 14) πΈ Loaded dataset '20250114-imola' with shape: (603724, 14) β All datasets loaded successfully!
βοΈ Values Correlations AnalysisΒΆ
# Correlation Matrix Analysis
for dataset_name, df in datasets.items():
print(f"\n\nπ Processing correlation heatmap for: {dataset_name}")
# Generate and display correlation heatmap with title
result = DataVisualizer.correlation_heatmap(df, title=f"Correlation Heatmap - {dataset_name}")
# Print highly correlated feature pairs
if result:
print("\nπ Highly correlated feature pairs (|correlation| > 0.7):")
for pair in result:
print(f" - {pair[0]} β {pair[1]}: {pair[2]:.2f}")
else:
print("β
No highly correlated feature pairs found.")
print("\nπ Correlation matrix analysis completed for all datasets!")
π Processing correlation heatmap for: 20241128-imola
π Highly correlated feature pairs (|correlation| > 0.7): - InverterTemp_RearLeft_C β InverterTemp_RearRight_C: 0.99 - MotorTemp_RearLeft_C β MotorTemp_RearRight_C: 0.99 - InverterSpeed_RearLeft_RPM β InverterSpeed_RearRight_RPM: 0.99 - BatteryCurrent_A β Inverter_Iq_Ref_RearLeft_A: 0.92 - Inverter_Iq_Ref_RearLeft_A β Inverter_Iq_Ref_RearRight_A: -0.91 - BatteryCurrent_A β Inverter_Iq_Ref_RearRight_A: -0.91 - Inverter_Id_Ref_RearLeft_A β Inverter_Id_Ref_RearRight_A: 0.84 - BatteryVoltage_V β BatteryPackTemp_C: -0.83 - BatteryCurrent_A β Inverter_Id_Ref_RearLeft_A: -0.83 - BatteryCurrent_A β Inverter_Id_Ref_RearRight_A: -0.83 - Inverter_Iq_Ref_RearLeft_A β Inverter_Id_Ref_RearLeft_A: -0.76 - Inverter_Iq_Ref_RearRight_A β Inverter_Id_Ref_RearRight_A: 0.75 - Inverter_Iq_Ref_RearLeft_A β Inverter_Id_Ref_RearRight_A: -0.73 - Inverter_Id_Ref_RearLeft_A β Inverter_Iq_Ref_RearRight_A: 0.71 π Processing correlation heatmap for: 20250113-imola
π Highly correlated feature pairs (|correlation| > 0.7): - MotorTemp_RearLeft_C β MotorTemp_RearRight_C: 0.99 - Inverter_Iq_Ref_RearLeft_A β Inverter_Iq_Ref_RearRight_A: -0.99 - InverterTemp_RearLeft_C β InverterTemp_RearRight_C: 0.98 - InverterSpeed_RearLeft_RPM β InverterSpeed_RearRight_RPM: 0.97 - BatteryCurrent_A β Inverter_Iq_Ref_RearRight_A: -0.90 - BatteryCurrent_A β Inverter_Iq_Ref_RearLeft_A: 0.90 - BatteryCurrent_A β Inverter_Id_Ref_RearRight_A: -0.89 - Inverter_Id_Ref_RearLeft_A β Inverter_Iq_Ref_RearRight_A: 0.88 - BatteryVoltage_V β BatteryPackTemp_C: -0.88 - Inverter_Iq_Ref_RearRight_A β Inverter_Id_Ref_RearRight_A: 0.88 - Inverter_Iq_Ref_RearLeft_A β Inverter_Id_Ref_RearLeft_A: -0.88 - Inverter_Iq_Ref_RearLeft_A β Inverter_Id_Ref_RearRight_A: -0.88 - BatteryCurrent_A β Inverter_Id_Ref_RearLeft_A: -0.87 - Inverter_Id_Ref_RearLeft_A β Inverter_Id_Ref_RearRight_A: 0.87 π Processing correlation heatmap for: 20250114-imola
π Highly correlated feature pairs (|correlation| > 0.7): - InverterTemp_RearLeft_C β InverterTemp_RearRight_C: 0.99 - MotorTemp_RearLeft_C β MotorTemp_RearRight_C: 0.99 - Inverter_Iq_Ref_RearLeft_A β Inverter_Iq_Ref_RearRight_A: -0.98 - InverterSpeed_RearLeft_RPM β InverterSpeed_RearRight_RPM: 0.98 - BatteryCurrent_A β Inverter_Iq_Ref_RearRight_A: -0.91 - BatteryCurrent_A β Inverter_Iq_Ref_RearLeft_A: 0.90 - Inverter_Iq_Ref_RearLeft_A β Inverter_Id_Ref_RearLeft_A: -0.90 - Inverter_Id_Ref_RearLeft_A β Inverter_Iq_Ref_RearRight_A: 0.89 - BatteryCurrent_A β Inverter_Id_Ref_RearRight_A: -0.89 - Inverter_Id_Ref_RearLeft_A β Inverter_Id_Ref_RearRight_A: 0.88 - Inverter_Iq_Ref_RearRight_A β Inverter_Id_Ref_RearRight_A: 0.88 - BatteryCurrent_A β Inverter_Id_Ref_RearLeft_A: -0.88 - Inverter_Iq_Ref_RearLeft_A β Inverter_Id_Ref_RearRight_A: -0.87 π Correlation matrix analysis completed for all datasets!
π―οΈ Error Analysis with KDE and BoxplotsΒΆ
for dataset_name, df in datasets.items():
print(f"\n\nπ Processing dataset: {dataset_name}")
# Set a title for the boxplot visualization
plot_title = f"Error Boxplots & Distributions - {dataset_name}"
# Plot KDE & Boxplots with 'InverterFault' as the hue
DataVisualizer.plot_distributions_with_kde_and_boxplot(df, fault_col="InverterFault", title=plot_title)
print(f"β
Completed visualization for {dataset_name}")
print("\nπ Error Boxplots Analysis Completed for All Datasets!")
π Processing dataset: 20241128-imola
β Completed visualization for 20241128-imola π Processing dataset: 20250113-imola
β Completed visualization for 20250113-imola π Processing dataset: 20250114-imola
β Completed visualization for 20250114-imola π Error Boxplots Analysis Completed for All Datasets!
π Granger Causality TestΒΆ
The Granger causality test is used to determine whether one time series is
useful in forecasting another. The basic idea is that if a time series X
Granger-causes another series Y, then including past values of X along with
past values of Y should improve the prediction of Y, compared to using only
past values of Y.
In practice, the test takes two series as input: the series to be predicted (Y)
and the potential predictor (X). It evaluates whether lagged values of X provide
statistically significant information about future values of Y.
If the p-value is smaller than a chosen significance level (commonly $0.05$), the
null hypothesis is rejected, indicating that X does indeed help forecast Y.
The null hypothesis of the test states that X does not Granger-cause Y.
The Granger test is typically applied to exogenous variables,
meaning it is not intended to test if Y is caused by its own past values.
A key parameter of the test is maxlag, which specifies how many previous
time steps should be considered when checking for predictive power.
granger_tables = {}
# Loop through each dataset
for dataset_name, df in datasets.items():
print(f"\n\nπ Processing dataset: {dataset_name}")
# Check if 'InverterFault' exists and has only one unique value
if "InverterFault" in df.columns and df["InverterFault"].nunique() == 1:
print(f"β οΈ Removing 'InverterFault' from {dataset_name} (only one unique value: {df['InverterFault'].iloc[0]})")
df = df.drop(columns=["InverterFault"])
# Perform Granger causality analysis
p_values, styled_table = GrangerCausalityAnalyzer.display_granger_results(
data=df,
variables=df.columns.to_list(),
max_lag=2,
significance_level=0.05,
title=f"Granger Causality P-values - {dataset_name}"
)
# Save Granger Analysis result
granger_tables[dataset_name] = styled_table
# Display results
print("\nπ Causality relationships table:")
display(styled_table)
print(f"β
Granger causality analysis completed for {dataset_name}.\n")
π Processing dataset: 20241128-imola β οΈ Removing 'InverterFault' from 20241128-imola (only one unique value: 0)
Found 141 significant Granger causal relationships: - Strong (p < 0.001): 129 - Medium (p < 0.01): 7 - Weak (p < 0.05): 5 Significance levels: *** p<0.001, ** p<0.01, * p<0.05 π Causality relationships table:
| Β | From | To | P-value | Significance |
|---|---|---|---|---|
| 110 | Inverter_Id_Ref_RearRight_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 97 | Inverter_Iq_Ref_RearRight_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 113 | Inverter_Id_Ref_RearRight_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 95 | Inverter_Iq_Ref_RearRight_A | BatteryCurrent_A | 0.0000 | *** |
| 35 | InverterSpeed_RearLeft_RPM | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 40 | Inverter_Iq_Ref_RearLeft_A | BatteryVoltage_V | 0.0000 | *** |
| 41 | Inverter_Iq_Ref_RearLeft_A | BatteryCurrent_A | 0.0000 | *** |
| 19 | BatteryCurrent_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 123 | MotorTemp_RearRight_C | MotorTemp_RearLeft_C | 0.0000 | *** |
| 46 | Inverter_Iq_Ref_RearLeft_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 51 | Inverter_Id_Ref_RearLeft_A | BatteryCurrent_A | 0.0000 | *** |
| 53 | Inverter_Id_Ref_RearLeft_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 109 | Inverter_Id_Ref_RearRight_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 85 | InverterSpeed_RearRight_RPM | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 57 | Inverter_Id_Ref_RearLeft_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 43 | Inverter_Iq_Ref_RearLeft_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 98 | Inverter_Iq_Ref_RearRight_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 94 | Inverter_Iq_Ref_RearRight_A | BatteryVoltage_V | 0.0000 | *** |
| 16 | BatteryCurrent_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 15 | BatteryCurrent_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 14 | BatteryCurrent_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 7 | BatteryVoltage_V | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 99 | Inverter_Iq_Ref_RearRight_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 106 | Inverter_Id_Ref_RearRight_A | BatteryCurrent_A | 0.0000 | *** |
| 102 | Inverter_Iq_Ref_RearRight_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 136 | InverterTemp_RearRight_C | InverterTemp_RearLeft_C | 0.0000 | *** |
| 108 | Inverter_Id_Ref_RearRight_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 12 | BatteryCurrent_A | BatteryVoltage_V | 0.0000 | *** |
| 47 | Inverter_Iq_Ref_RearLeft_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 48 | Inverter_Iq_Ref_RearLeft_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 21 | BatteryCurrent_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 50 | Inverter_Id_Ref_RearLeft_A | BatteryVoltage_V | 0.0000 | *** |
| 105 | Inverter_Id_Ref_RearRight_A | BatteryVoltage_V | 0.0000 | *** |
| 58 | Inverter_Id_Ref_RearLeft_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 103 | Inverter_Iq_Ref_RearRight_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 2 | BatteryVoltage_V | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 44 | Inverter_Iq_Ref_RearLeft_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 92 | InverterSpeed_RearRight_RPM | MotorTemp_RearRight_C | 0.0000 | *** |
| 29 | InverterSpeed_RearLeft_RPM | BatteryCurrent_A | 0.0000 | *** |
| 38 | InverterSpeed_RearLeft_RPM | MotorTemp_RearRight_C | 0.0000 | *** |
| 20 | BatteryCurrent_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 88 | InverterSpeed_RearRight_RPM | MotorTemp_RearLeft_C | 0.0000 | *** |
| 33 | InverterSpeed_RearLeft_RPM | MotorTemp_RearLeft_C | 0.0000 | *** |
| 91 | InverterSpeed_RearRight_RPM | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 24 | BatteryPackTemp_C | BatteryVoltage_V | 0.0000 | *** |
| 28 | InverterSpeed_RearLeft_RPM | BatteryVoltage_V | 0.0000 | *** |
| 37 | InverterSpeed_RearLeft_RPM | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 81 | InverterTemp_RearLeft_C | InverterTemp_RearRight_C | 0.0000 | *** |
| 32 | InverterSpeed_RearLeft_RPM | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 87 | InverterSpeed_RearRight_RPM | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 125 | MotorTemp_RearRight_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 67 | MotorTemp_RearLeft_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 115 | Inverter_Id_Ref_RearRight_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 59 | Inverter_Id_Ref_RearLeft_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 49 | Inverter_Iq_Ref_RearLeft_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 129 | InverterTemp_RearRight_C | BatteryVoltage_V | 0.0000 | *** |
| 22 | BatteryCurrent_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 45 | Inverter_Iq_Ref_RearLeft_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 111 | Inverter_Id_Ref_RearRight_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 90 | InverterSpeed_RearRight_RPM | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 8 | BatteryVoltage_V | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 82 | InverterSpeed_RearRight_RPM | BatteryVoltage_V | 0.0000 | *** |
| 17 | BatteryCurrent_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 100 | Inverter_Iq_Ref_RearRight_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 55 | Inverter_Id_Ref_RearLeft_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 3 | BatteryVoltage_V | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 135 | InverterTemp_RearRight_C | MotorTemp_RearLeft_C | 0.0000 | *** |
| 104 | Inverter_Iq_Ref_RearRight_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 71 | InverterTemp_RearLeft_C | BatteryVoltage_V | 0.0000 | *** |
| 140 | InverterTemp_RearRight_C | MotorTemp_RearRight_C | 0.0000 | *** |
| 83 | InverterSpeed_RearRight_RPM | BatteryCurrent_A | 0.0000 | *** |
| 80 | InverterTemp_RearLeft_C | MotorTemp_RearRight_C | 0.0000 | *** |
| 61 | MotorTemp_RearLeft_C | BatteryVoltage_V | 0.0000 | *** |
| 77 | InverterTemp_RearLeft_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 117 | MotorTemp_RearRight_C | BatteryVoltage_V | 0.0000 | *** |
| 76 | InverterTemp_RearLeft_C | MotorTemp_RearLeft_C | 0.0000 | *** |
| 137 | InverterTemp_RearRight_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 86 | InverterSpeed_RearRight_RPM | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 119 | MotorTemp_RearRight_C | BatteryPackTemp_C | 0.0000 | *** |
| 133 | InverterTemp_RearRight_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 63 | MotorTemp_RearLeft_C | BatteryPackTemp_C | 0.0000 | *** |
| 130 | InverterTemp_RearRight_C | BatteryCurrent_A | 0.0000 | *** |
| 34 | InverterSpeed_RearLeft_RPM | InverterTemp_RearLeft_C | 0.0000 | *** |
| 39 | InverterSpeed_RearLeft_RPM | InverterTemp_RearRight_C | 0.0000 | *** |
| 139 | InverterTemp_RearRight_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 134 | InverterTemp_RearRight_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 56 | Inverter_Id_Ref_RearLeft_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 118 | MotorTemp_RearRight_C | BatteryCurrent_A | 0.0000 | *** |
| 127 | MotorTemp_RearRight_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 138 | InverterTemp_RearRight_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 5 | BatteryVoltage_V | MotorTemp_RearLeft_C | 0.0000 | *** |
| 79 | InverterTemp_RearLeft_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 122 | MotorTemp_RearRight_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 89 | InverterSpeed_RearRight_RPM | InverterTemp_RearLeft_C | 0.0000 | *** |
| 93 | InverterSpeed_RearRight_RPM | InverterTemp_RearRight_C | 0.0000 | *** |
| 78 | InverterTemp_RearLeft_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 54 | Inverter_Id_Ref_RearLeft_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 74 | InverterTemp_RearLeft_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 36 | InverterSpeed_RearLeft_RPM | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 62 | MotorTemp_RearLeft_C | BatteryCurrent_A | 0.0000 | *** |
| 31 | InverterSpeed_RearLeft_RPM | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 72 | InverterTemp_RearLeft_C | BatteryCurrent_A | 0.0000 | *** |
| 69 | MotorTemp_RearLeft_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 66 | MotorTemp_RearLeft_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 6 | BatteryVoltage_V | InverterTemp_RearLeft_C | 0.0000 | *** |
| 10 | BatteryVoltage_V | MotorTemp_RearRight_C | 0.0000 | *** |
| 112 | Inverter_Id_Ref_RearRight_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 75 | InverterTemp_RearLeft_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 121 | MotorTemp_RearRight_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 1 | BatteryVoltage_V | BatteryPackTemp_C | 0.0000 | *** |
| 84 | InverterSpeed_RearRight_RPM | BatteryPackTemp_C | 0.0000 | *** |
| 0 | BatteryVoltage_V | BatteryCurrent_A | 0.0000 | *** |
| 65 | MotorTemp_RearLeft_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 30 | InverterSpeed_RearLeft_RPM | BatteryPackTemp_C | 0.0000 | *** |
| 126 | MotorTemp_RearRight_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 60 | Inverter_Id_Ref_RearLeft_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 18 | BatteryCurrent_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 4 | BatteryVoltage_V | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 68 | MotorTemp_RearLeft_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 114 | Inverter_Id_Ref_RearRight_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 9 | BatteryVoltage_V | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 120 | MotorTemp_RearRight_C | InverterSpeed_RearLeft_RPM | 0.0001 | *** |
| 11 | BatteryVoltage_V | InverterTemp_RearRight_C | 0.0001 | *** |
| 116 | Inverter_Id_Ref_RearRight_A | InverterTemp_RearRight_C | 0.0001 | *** |
| 131 | InverterTemp_RearRight_C | BatteryPackTemp_C | 0.0001 | *** |
| 64 | MotorTemp_RearLeft_C | InverterSpeed_RearLeft_RPM | 0.0002 | *** |
| 132 | InverterTemp_RearRight_C | InverterSpeed_RearLeft_RPM | 0.0002 | *** |
| 73 | InverterTemp_RearLeft_C | BatteryPackTemp_C | 0.0007 | *** |
| 13 | BatteryCurrent_A | BatteryPackTemp_C | 0.0008 | *** |
| 42 | Inverter_Iq_Ref_RearLeft_A | BatteryPackTemp_C | 0.0011 | ** |
| 107 | Inverter_Id_Ref_RearRight_A | BatteryPackTemp_C | 0.0025 | ** |
| 96 | Inverter_Iq_Ref_RearRight_A | BatteryPackTemp_C | 0.0028 | ** |
| 23 | BatteryCurrent_A | InverterTemp_RearRight_C | 0.0036 | ** |
| 52 | Inverter_Id_Ref_RearLeft_A | BatteryPackTemp_C | 0.0050 | ** |
| 128 | MotorTemp_RearRight_C | InverterTemp_RearRight_C | 0.0053 | ** |
| 101 | Inverter_Iq_Ref_RearRight_A | InverterTemp_RearLeft_C | 0.0055 | ** |
| 27 | BatteryPackTemp_C | MotorTemp_RearRight_C | 0.0127 | * |
| 124 | MotorTemp_RearRight_C | InverterTemp_RearLeft_C | 0.0227 | * |
| 25 | BatteryPackTemp_C | MotorTemp_RearLeft_C | 0.0287 | * |
| 26 | BatteryPackTemp_C | Inverter_Iq_Ref_RearRight_A | 0.0339 | * |
| 70 | MotorTemp_RearLeft_C | InverterTemp_RearRight_C | 0.0380 | * |
β Granger causality analysis completed for 20241128-imola. π Processing dataset: 20250113-imola
Found 152 significant Granger causal relationships: - Strong (p < 0.001): 142 - Medium (p < 0.01): 8 - Weak (p < 0.05): 2 Significance levels: *** p<0.001, ** p<0.01, * p<0.05 π Causality relationships table:
| Β | From | To | P-value | Significance |
|---|---|---|---|---|
| 108 | Inverter_Iq_Ref_RearRight_A | BatteryCurrent_A | 0.0000 | *** |
| 115 | Inverter_Iq_Ref_RearRight_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 53 | Inverter_Iq_Ref_RearLeft_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 119 | Inverter_Id_Ref_RearRight_A | BatteryVoltage_V | 0.0000 | *** |
| 68 | Inverter_Id_Ref_RearLeft_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 120 | Inverter_Id_Ref_RearRight_A | BatteryCurrent_A | 0.0000 | *** |
| 122 | Inverter_Id_Ref_RearRight_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 64 | Inverter_Id_Ref_RearLeft_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 123 | Inverter_Id_Ref_RearRight_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 112 | Inverter_Iq_Ref_RearRight_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 62 | Inverter_Id_Ref_RearLeft_A | BatteryCurrent_A | 0.0000 | *** |
| 124 | Inverter_Id_Ref_RearRight_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 41 | InverterSpeed_RearLeft_RPM | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 56 | Inverter_Iq_Ref_RearLeft_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 44 | InverterSpeed_RearLeft_RPM | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 127 | Inverter_Id_Ref_RearRight_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 107 | Inverter_Iq_Ref_RearRight_A | BatteryVoltage_V | 0.0000 | *** |
| 49 | Inverter_Iq_Ref_RearLeft_A | BatteryVoltage_V | 0.0000 | *** |
| 50 | Inverter_Iq_Ref_RearLeft_A | BatteryCurrent_A | 0.0000 | *** |
| 61 | Inverter_Id_Ref_RearLeft_A | BatteryVoltage_V | 0.0000 | *** |
| 21 | BatteryCurrent_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 52 | Inverter_Iq_Ref_RearLeft_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 19 | BatteryCurrent_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 7 | BatteryVoltage_V | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 20 | BatteryCurrent_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 110 | Inverter_Iq_Ref_RearRight_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 12 | BatteryCurrent_A | BatteryVoltage_V | 0.0000 | *** |
| 16 | BatteryCurrent_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 15 | BatteryCurrent_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 14 | BatteryCurrent_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 111 | Inverter_Iq_Ref_RearRight_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 37 | InverterSpeed_RearLeft_RPM | BatteryCurrent_A | 0.0000 | *** |
| 58 | Inverter_Iq_Ref_RearLeft_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 116 | Inverter_Iq_Ref_RearRight_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 105 | InverterSpeed_RearRight_RPM | MotorTemp_RearRight_C | 0.0000 | *** |
| 24 | BatteryPackTemp_C | BatteryVoltage_V | 0.0000 | *** |
| 47 | InverterSpeed_RearLeft_RPM | MotorTemp_RearRight_C | 0.0000 | *** |
| 100 | InverterSpeed_RearRight_RPM | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 104 | InverterSpeed_RearRight_RPM | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 57 | Inverter_Iq_Ref_RearLeft_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 101 | InverterSpeed_RearRight_RPM | MotorTemp_RearLeft_C | 0.0000 | *** |
| 42 | InverterSpeed_RearLeft_RPM | MotorTemp_RearLeft_C | 0.0000 | *** |
| 98 | InverterSpeed_RearRight_RPM | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 65 | Inverter_Id_Ref_RearLeft_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 36 | InverterSpeed_RearLeft_RPM | BatteryVoltage_V | 0.0000 | *** |
| 138 | MotorTemp_RearRight_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 2 | BatteryVoltage_V | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 103 | InverterSpeed_RearRight_RPM | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 95 | InverterSpeed_RearRight_RPM | BatteryCurrent_A | 0.0000 | *** |
| 99 | InverterSpeed_RearRight_RPM | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 148 | InverterTemp_RearRight_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 79 | MotorTemp_RearLeft_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 46 | InverterSpeed_RearLeft_RPM | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 151 | InverterTemp_RearRight_C | MotorTemp_RearRight_C | 0.0000 | *** |
| 31 | InverterFault | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 94 | InverterSpeed_RearRight_RPM | BatteryVoltage_V | 0.0000 | *** |
| 146 | InverterTemp_RearRight_C | MotorTemp_RearLeft_C | 0.0000 | *** |
| 92 | InverterTemp_RearLeft_C | MotorTemp_RearRight_C | 0.0000 | *** |
| 89 | InverterTemp_RearLeft_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 70 | Inverter_Id_Ref_RearLeft_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 69 | Inverter_Id_Ref_RearLeft_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 40 | InverterSpeed_RearLeft_RPM | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 88 | InverterTemp_RearLeft_C | MotorTemp_RearLeft_C | 0.0000 | *** |
| 45 | InverterSpeed_RearLeft_RPM | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 128 | Inverter_Id_Ref_RearRight_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 136 | MotorTemp_RearRight_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 137 | MotorTemp_RearRight_C | MotorTemp_RearLeft_C | 0.0000 | *** |
| 78 | MotorTemp_RearLeft_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 34 | InverterFault | MotorTemp_RearRight_C | 0.0000 | *** |
| 145 | InverterTemp_RearRight_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 132 | MotorTemp_RearRight_C | BatteryCurrent_A | 0.0000 | *** |
| 93 | InverterTemp_RearLeft_C | InverterTemp_RearRight_C | 0.0000 | *** |
| 71 | Inverter_Id_Ref_RearLeft_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 117 | Inverter_Iq_Ref_RearRight_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 73 | MotorTemp_RearLeft_C | BatteryVoltage_V | 0.0000 | *** |
| 74 | MotorTemp_RearLeft_C | BatteryCurrent_A | 0.0000 | *** |
| 129 | Inverter_Id_Ref_RearRight_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 59 | Inverter_Iq_Ref_RearLeft_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 140 | MotorTemp_RearRight_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 22 | BatteryCurrent_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 29 | InverterFault | MotorTemp_RearLeft_C | 0.0000 | *** |
| 144 | InverterTemp_RearRight_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 149 | InverterTemp_RearRight_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 139 | MotorTemp_RearRight_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 135 | MotorTemp_RearRight_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 81 | MotorTemp_RearLeft_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 87 | InverterTemp_RearLeft_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 131 | MotorTemp_RearRight_C | BatteryVoltage_V | 0.0000 | *** |
| 48 | InverterSpeed_RearLeft_RPM | InverterTemp_RearRight_C | 0.0000 | *** |
| 28 | InverterFault | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 150 | InverterTemp_RearRight_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 106 | InverterSpeed_RearRight_RPM | InverterTemp_RearRight_C | 0.0000 | *** |
| 80 | MotorTemp_RearLeft_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 4 | BatteryVoltage_V | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 77 | MotorTemp_RearLeft_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 32 | InverterFault | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 143 | InverterTemp_RearRight_C | InverterFault | 0.0000 | *** |
| 86 | InverterTemp_RearLeft_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 27 | InverterFault | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 90 | InverterTemp_RearLeft_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 35 | InverterFault | InverterTemp_RearRight_C | 0.0000 | *** |
| 33 | InverterFault | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 133 | MotorTemp_RearRight_C | BatteryPackTemp_C | 0.0000 | *** |
| 102 | InverterSpeed_RearRight_RPM | InverterTemp_RearLeft_C | 0.0000 | *** |
| 91 | InverterTemp_RearLeft_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 85 | InverterTemp_RearLeft_C | InverterFault | 0.0000 | *** |
| 142 | InverterTemp_RearRight_C | BatteryCurrent_A | 0.0000 | *** |
| 43 | InverterSpeed_RearLeft_RPM | InverterTemp_RearLeft_C | 0.0000 | *** |
| 147 | InverterTemp_RearRight_C | InverterTemp_RearLeft_C | 0.0000 | *** |
| 75 | MotorTemp_RearLeft_C | BatteryPackTemp_C | 0.0000 | *** |
| 30 | InverterFault | InverterTemp_RearLeft_C | 0.0000 | *** |
| 23 | BatteryCurrent_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 66 | Inverter_Id_Ref_RearLeft_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 84 | InverterTemp_RearLeft_C | BatteryCurrent_A | 0.0000 | *** |
| 25 | InverterFault | BatteryCurrent_A | 0.0000 | *** |
| 125 | Inverter_Id_Ref_RearRight_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 118 | Inverter_Iq_Ref_RearRight_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 130 | Inverter_Id_Ref_RearRight_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 18 | BatteryCurrent_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 60 | Inverter_Iq_Ref_RearLeft_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 113 | Inverter_Iq_Ref_RearRight_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 72 | Inverter_Id_Ref_RearLeft_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 54 | Inverter_Iq_Ref_RearLeft_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 17 | BatteryCurrent_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 1 | BatteryVoltage_V | BatteryPackTemp_C | 0.0000 | *** |
| 26 | InverterFault | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 8 | BatteryVoltage_V | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 3 | BatteryVoltage_V | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 114 | Inverter_Iq_Ref_RearRight_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 55 | Inverter_Iq_Ref_RearLeft_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 82 | MotorTemp_RearLeft_C | MotorTemp_RearRight_C | 0.0000 | *** |
| 126 | Inverter_Id_Ref_RearRight_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 10 | BatteryVoltage_V | MotorTemp_RearRight_C | 0.0000 | *** |
| 11 | BatteryVoltage_V | InverterTemp_RearRight_C | 0.0000 | *** |
| 96 | InverterSpeed_RearRight_RPM | BatteryPackTemp_C | 0.0000 | *** |
| 38 | InverterSpeed_RearLeft_RPM | BatteryPackTemp_C | 0.0000 | *** |
| 67 | Inverter_Id_Ref_RearLeft_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 6 | BatteryVoltage_V | InverterTemp_RearLeft_C | 0.0000 | *** |
| 5 | BatteryVoltage_V | MotorTemp_RearLeft_C | 0.0002 | *** |
| 109 | Inverter_Iq_Ref_RearRight_A | BatteryPackTemp_C | 0.0006 | *** |
| 51 | Inverter_Iq_Ref_RearLeft_A | BatteryPackTemp_C | 0.0007 | *** |
| 141 | InverterTemp_RearRight_C | BatteryVoltage_V | 0.0008 | *** |
| 83 | InverterTemp_RearLeft_C | BatteryVoltage_V | 0.0022 | ** |
| 13 | BatteryCurrent_A | BatteryPackTemp_C | 0.0039 | ** |
| 121 | Inverter_Id_Ref_RearRight_A | BatteryPackTemp_C | 0.0040 | ** |
| 134 | MotorTemp_RearRight_C | InverterFault | 0.0052 | ** |
| 63 | Inverter_Id_Ref_RearLeft_A | BatteryPackTemp_C | 0.0060 | ** |
| 97 | InverterSpeed_RearRight_RPM | InverterFault | 0.0066 | ** |
| 76 | MotorTemp_RearLeft_C | InverterFault | 0.0092 | ** |
| 0 | BatteryVoltage_V | BatteryCurrent_A | 0.0093 | ** |
| 9 | BatteryVoltage_V | Inverter_Id_Ref_RearRight_A | 0.0123 | * |
| 39 | InverterSpeed_RearLeft_RPM | InverterFault | 0.0329 | * |
β Granger causality analysis completed for 20250113-imola. π Processing dataset: 20250114-imola
Found 150 significant Granger causal relationships: - Strong (p < 0.001): 142 - Medium (p < 0.01): 6 - Weak (p < 0.05): 2 Significance levels: *** p<0.001, ** p<0.01, * p<0.05 π Causality relationships table:
| Β | From | To | P-value | Significance |
|---|---|---|---|---|
| 50 | Inverter_Iq_Ref_RearLeft_A | BatteryCurrent_A | 0.0000 | *** |
| 107 | Inverter_Iq_Ref_RearRight_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 109 | Inverter_Iq_Ref_RearRight_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 112 | Inverter_Iq_Ref_RearRight_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 116 | Inverter_Id_Ref_RearRight_A | BatteryVoltage_V | 0.0000 | *** |
| 117 | Inverter_Id_Ref_RearRight_A | BatteryCurrent_A | 0.0000 | *** |
| 118 | Inverter_Id_Ref_RearRight_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 66 | Inverter_Id_Ref_RearLeft_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 62 | Inverter_Id_Ref_RearLeft_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 106 | Inverter_Iq_Ref_RearRight_A | BatteryCurrent_A | 0.0000 | *** |
| 38 | InverterSpeed_RearLeft_RPM | BatteryCurrent_A | 0.0000 | *** |
| 61 | Inverter_Id_Ref_RearLeft_A | BatteryCurrent_A | 0.0000 | *** |
| 41 | InverterSpeed_RearLeft_RPM | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 60 | Inverter_Id_Ref_RearLeft_A | BatteryVoltage_V | 0.0000 | *** |
| 44 | InverterSpeed_RearLeft_RPM | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 120 | Inverter_Id_Ref_RearRight_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 49 | Inverter_Iq_Ref_RearLeft_A | BatteryVoltage_V | 0.0000 | *** |
| 51 | Inverter_Iq_Ref_RearLeft_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 52 | Inverter_Iq_Ref_RearLeft_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 123 | Inverter_Id_Ref_RearRight_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 105 | Inverter_Iq_Ref_RearRight_A | BatteryVoltage_V | 0.0000 | *** |
| 55 | Inverter_Iq_Ref_RearLeft_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 19 | BatteryCurrent_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 18 | BatteryCurrent_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 17 | BatteryCurrent_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 14 | BatteryCurrent_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 13 | BatteryCurrent_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 12 | BatteryCurrent_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 6 | BatteryVoltage_V | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 11 | BatteryCurrent_A | BatteryVoltage_V | 0.0000 | *** |
| 32 | InverterFault | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 96 | InverterSpeed_RearRight_RPM | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 57 | Inverter_Iq_Ref_RearLeft_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 103 | InverterSpeed_RearRight_RPM | MotorTemp_RearRight_C | 0.0000 | *** |
| 113 | Inverter_Iq_Ref_RearRight_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 47 | InverterSpeed_RearLeft_RPM | MotorTemp_RearRight_C | 0.0000 | *** |
| 98 | InverterSpeed_RearRight_RPM | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 102 | InverterSpeed_RearRight_RPM | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 134 | MotorTemp_RearRight_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 99 | InverterSpeed_RearRight_RPM | MotorTemp_RearLeft_C | 0.0000 | *** |
| 146 | InverterTemp_RearRight_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 94 | InverterSpeed_RearRight_RPM | BatteryCurrent_A | 0.0000 | *** |
| 68 | Inverter_Id_Ref_RearLeft_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 42 | InverterSpeed_RearLeft_RPM | MotorTemp_RearLeft_C | 0.0000 | *** |
| 1 | BatteryVoltage_V | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 88 | InverterTemp_RearLeft_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 97 | InverterSpeed_RearRight_RPM | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 101 | InverterSpeed_RearRight_RPM | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 77 | MotorTemp_RearLeft_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 93 | InverterSpeed_RearRight_RPM | BatteryVoltage_V | 0.0000 | *** |
| 46 | InverterSpeed_RearLeft_RPM | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 56 | Inverter_Iq_Ref_RearLeft_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 37 | InverterSpeed_RearLeft_RPM | BatteryVoltage_V | 0.0000 | *** |
| 63 | Inverter_Id_Ref_RearLeft_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 140 | InverterTemp_RearRight_C | InverterFault | 0.0000 | *** |
| 149 | InverterTemp_RearRight_C | MotorTemp_RearRight_C | 0.0000 | *** |
| 83 | InverterTemp_RearLeft_C | InverterFault | 0.0000 | *** |
| 91 | InverterTemp_RearLeft_C | MotorTemp_RearRight_C | 0.0000 | *** |
| 71 | MotorTemp_RearLeft_C | BatteryVoltage_V | 0.0000 | *** |
| 131 | MotorTemp_RearRight_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 69 | Inverter_Id_Ref_RearLeft_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 125 | Inverter_Id_Ref_RearRight_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 45 | InverterSpeed_RearLeft_RPM | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 114 | Inverter_Iq_Ref_RearRight_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 144 | InverterTemp_RearRight_C | MotorTemp_RearLeft_C | 0.0000 | *** |
| 58 | Inverter_Iq_Ref_RearLeft_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 40 | InverterSpeed_RearLeft_RPM | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 87 | InverterTemp_RearLeft_C | MotorTemp_RearLeft_C | 0.0000 | *** |
| 132 | MotorTemp_RearRight_C | MotorTemp_RearLeft_C | 0.0000 | *** |
| 20 | BatteryCurrent_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 31 | InverterFault | InverterTemp_RearLeft_C | 0.0000 | *** |
| 75 | MotorTemp_RearLeft_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 36 | InverterFault | InverterTemp_RearRight_C | 0.0000 | *** |
| 127 | MotorTemp_RearRight_C | BatteryVoltage_V | 0.0000 | *** |
| 22 | BatteryPackTemp_C | BatteryVoltage_V | 0.0000 | *** |
| 128 | MotorTemp_RearRight_C | BatteryCurrent_A | 0.0000 | *** |
| 27 | InverterFault | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 121 | Inverter_Id_Ref_RearRight_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 136 | MotorTemp_RearRight_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 2 | BatteryVoltage_V | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 110 | Inverter_Iq_Ref_RearRight_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 48 | InverterSpeed_RearLeft_RPM | InverterTemp_RearRight_C | 0.0000 | *** |
| 104 | InverterSpeed_RearRight_RPM | InverterTemp_RearRight_C | 0.0000 | *** |
| 72 | MotorTemp_RearLeft_C | BatteryCurrent_A | 0.0000 | *** |
| 130 | MotorTemp_RearRight_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 7 | BatteryVoltage_V | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 143 | InverterTemp_RearRight_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 135 | MotorTemp_RearRight_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 15 | BatteryCurrent_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 64 | Inverter_Id_Ref_RearLeft_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 5 | BatteryVoltage_V | InverterTemp_RearLeft_C | 0.0000 | *** |
| 53 | Inverter_Iq_Ref_RearLeft_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 79 | MotorTemp_RearLeft_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 100 | InverterSpeed_RearRight_RPM | InverterTemp_RearLeft_C | 0.0000 | *** |
| 43 | InverterSpeed_RearLeft_RPM | InverterTemp_RearLeft_C | 0.0000 | *** |
| 29 | InverterFault | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 86 | InverterTemp_RearLeft_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 119 | Inverter_Id_Ref_RearRight_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 3 | BatteryVoltage_V | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 35 | InverterFault | MotorTemp_RearRight_C | 0.0000 | *** |
| 10 | BatteryVoltage_V | InverterTemp_RearRight_C | 0.0000 | *** |
| 74 | MotorTemp_RearLeft_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 78 | MotorTemp_RearLeft_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 33 | InverterFault | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 95 | InverterSpeed_RearRight_RPM | InverterFault | 0.0000 | *** |
| 34 | InverterFault | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 28 | InverterFault | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 30 | InverterFault | MotorTemp_RearLeft_C | 0.0000 | *** |
| 124 | Inverter_Id_Ref_RearRight_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 148 | InverterTemp_RearRight_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 142 | InverterTemp_RearRight_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 9 | BatteryVoltage_V | MotorTemp_RearRight_C | 0.0000 | *** |
| 147 | InverterTemp_RearRight_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 90 | InverterTemp_RearLeft_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 85 | InverterTemp_RearLeft_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 16 | BatteryCurrent_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 89 | InverterTemp_RearLeft_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 21 | BatteryCurrent_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 115 | Inverter_Iq_Ref_RearRight_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 26 | InverterFault | BatteryCurrent_A | 0.0000 | *** |
| 111 | Inverter_Iq_Ref_RearRight_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 122 | Inverter_Id_Ref_RearRight_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 139 | InverterTemp_RearRight_C | BatteryCurrent_A | 0.0000 | *** |
| 126 | Inverter_Id_Ref_RearRight_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 81 | InverterTemp_RearLeft_C | BatteryVoltage_V | 0.0000 | *** |
| 92 | InverterTemp_RearLeft_C | InverterTemp_RearRight_C | 0.0000 | *** |
| 4 | BatteryVoltage_V | MotorTemp_RearLeft_C | 0.0000 | *** |
| 59 | Inverter_Iq_Ref_RearLeft_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 54 | Inverter_Iq_Ref_RearLeft_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 39 | InverterSpeed_RearLeft_RPM | InverterFault | 0.0000 | *** |
| 82 | InverterTemp_RearLeft_C | BatteryCurrent_A | 0.0000 | *** |
| 138 | InverterTemp_RearRight_C | BatteryVoltage_V | 0.0000 | *** |
| 70 | Inverter_Id_Ref_RearLeft_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 65 | Inverter_Id_Ref_RearLeft_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 108 | Inverter_Iq_Ref_RearRight_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 141 | InverterTemp_RearRight_C | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 67 | Inverter_Id_Ref_RearLeft_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 8 | BatteryVoltage_V | Inverter_Id_Ref_RearRight_A | 0.0001 | *** |
| 84 | InverterTemp_RearLeft_C | InverterSpeed_RearLeft_RPM | 0.0001 | *** |
| 76 | MotorTemp_RearLeft_C | InverterTemp_RearLeft_C | 0.0003 | *** |
| 129 | MotorTemp_RearRight_C | InverterSpeed_RearLeft_RPM | 0.0003 | *** |
| 80 | MotorTemp_RearLeft_C | InverterTemp_RearRight_C | 0.0008 | *** |
| 25 | InverterFault | BatteryVoltage_V | 0.0017 | ** |
| 133 | MotorTemp_RearRight_C | InverterTemp_RearLeft_C | 0.0022 | ** |
| 137 | MotorTemp_RearRight_C | InverterTemp_RearRight_C | 0.0040 | ** |
| 145 | InverterTemp_RearRight_C | InverterTemp_RearLeft_C | 0.0061 | ** |
| 73 | MotorTemp_RearLeft_C | InverterSpeed_RearLeft_RPM | 0.0092 | ** |
| 0 | BatteryVoltage_V | BatteryCurrent_A | 0.0093 | ** |
| 23 | BatteryPackTemp_C | InverterTemp_RearLeft_C | 0.0102 | * |
| 24 | BatteryPackTemp_C | InverterTemp_RearRight_C | 0.0310 | * |
β Granger causality analysis completed for 20250114-imola.
Running some queries over the Granger causality results on 20250113-imola dataset
# π― Query 1: Use only 'MotorTemp_RearRight_C' and 'MotorTemp_RearLeft_C'
# as predictors (From) and test their influence on all other variables (To)
# using the Granger causality results.
dataset_name = '20250113-imola'
exclude_from = datasets[dataset_name].columns.difference(["MotorTemp_RearRight_C", "MotorTemp_RearLeft_C"])
exclude_to = ["MotorTemp_RearRight_C", "MotorTemp_RearLeft_C"]
filtered_table = GrangerCausalityAnalyzer.filter_table(
styled_table=granger_tables[dataset_name],
exclude_from=exclude_from,
exclude_to=exclude_to,
)
print("\nπ **Filtered Table - Query 1:**")
print(f"πΉ Dataset: {dataset_name}")
display(filtered_table)
π **Filtered Table - Query 1:** πΉ Dataset: 20250113-imola
| Β | From | To | P-value | Significance |
|---|---|---|---|---|
| 138 | MotorTemp_RearRight_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 79 | MotorTemp_RearLeft_C | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 136 | MotorTemp_RearRight_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 78 | MotorTemp_RearLeft_C | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 132 | MotorTemp_RearRight_C | BatteryCurrent_A | 0.0000 | *** |
| 73 | MotorTemp_RearLeft_C | BatteryVoltage_V | 0.0000 | *** |
| 74 | MotorTemp_RearLeft_C | BatteryCurrent_A | 0.0000 | *** |
| 140 | MotorTemp_RearRight_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 139 | MotorTemp_RearRight_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 135 | MotorTemp_RearRight_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 81 | MotorTemp_RearLeft_C | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 131 | MotorTemp_RearRight_C | BatteryVoltage_V | 0.0000 | *** |
| 80 | MotorTemp_RearLeft_C | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 77 | MotorTemp_RearLeft_C | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 133 | MotorTemp_RearRight_C | BatteryPackTemp_C | 0.0000 | *** |
| 75 | MotorTemp_RearLeft_C | BatteryPackTemp_C | 0.0000 | *** |
| 134 | MotorTemp_RearRight_C | InverterFault | 0.0052 | ** |
| 76 | MotorTemp_RearLeft_C | InverterFault | 0.0092 | ** |
# π― Query 2: Use only 'BatteryCurrent_A'
# as predictor (From) and test its influence on all other variables (To)
# using the Granger causality results.
dataset_name = '20250113-imola'
exclude_from = datasets[dataset_name].columns.difference(["BatteryCurrent_A"])
exclude_to = ["BatteryCurrent_A"]
filtered_table = GrangerCausalityAnalyzer.filter_table(
styled_table=granger_tables[dataset_name],
exclude_from=exclude_from,
exclude_to=exclude_to,
)
print("\nπ **Filtered Table - Query 2:**")
print(f"πΉ Dataset: {dataset_name}")
display(filtered_table)
π **Filtered Table - Query 2:** πΉ Dataset: 20250113-imola
| Β | From | To | P-value | Significance |
|---|---|---|---|---|
| 21 | BatteryCurrent_A | Inverter_Id_Ref_RearRight_A | 0.0000 | *** |
| 19 | BatteryCurrent_A | InverterSpeed_RearRight_RPM | 0.0000 | *** |
| 20 | BatteryCurrent_A | Inverter_Iq_Ref_RearRight_A | 0.0000 | *** |
| 12 | BatteryCurrent_A | BatteryVoltage_V | 0.0000 | *** |
| 16 | BatteryCurrent_A | Inverter_Id_Ref_RearLeft_A | 0.0000 | *** |
| 15 | BatteryCurrent_A | Inverter_Iq_Ref_RearLeft_A | 0.0000 | *** |
| 14 | BatteryCurrent_A | InverterSpeed_RearLeft_RPM | 0.0000 | *** |
| 22 | BatteryCurrent_A | MotorTemp_RearRight_C | 0.0000 | *** |
| 23 | BatteryCurrent_A | InverterTemp_RearRight_C | 0.0000 | *** |
| 18 | BatteryCurrent_A | InverterTemp_RearLeft_C | 0.0000 | *** |
| 17 | BatteryCurrent_A | MotorTemp_RearLeft_C | 0.0000 | *** |
| 13 | BatteryCurrent_A | BatteryPackTemp_C | 0.0039 | ** |
# π― Query 3: Use all the variables except 'InverterFault'
# as predictors (From) and test their influence on 'InverterFault' variable (To)
# using the Granger causality results.
dataset_name = '20250113-imola'
exclude_from = ["InverterFault"]
exclude_to = datasets[dataset_name].columns.difference(["InverterFault"])
filtered_table = GrangerCausalityAnalyzer.filter_table(
styled_table=granger_tables[dataset_name],
exclude_from=exclude_from,
exclude_to=exclude_to,
)
print("\nπ **Filtered Table - Query 3:**")
print(f"πΉ Dataset: {dataset_name}")
display(filtered_table)
π **Filtered Table - Query 3:** πΉ Dataset: 20250113-imola
| Β | From | To | P-value | Significance |
|---|---|---|---|---|
| 143 | InverterTemp_RearRight_C | InverterFault | 0.0000 | *** |
| 85 | InverterTemp_RearLeft_C | InverterFault | 0.0000 | *** |
| 134 | MotorTemp_RearRight_C | InverterFault | 0.0052 | ** |
| 97 | InverterSpeed_RearRight_RPM | InverterFault | 0.0066 | ** |
| 76 | MotorTemp_RearLeft_C | InverterFault | 0.0092 | ** |
| 39 | InverterSpeed_RearLeft_RPM | InverterFault | 0.0329 | * |